package com.mdd.system.service;

import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mdd.common.base.page.PageValidate;
import com.mdd.common.core.PageResult;
import com.mdd.system.entity.SystemAuthAdmin;
import com.mdd.system.entity.SystemAuthMenu;
import com.mdd.system.validate.SystemMenuCreateValidate;
import com.mdd.system.validate.SystemMenuUpdateValidate;
import com.mdd.system.vo.SystemAuthAdminInformVo;
import com.mdd.system.vo.SystemAuthMenuVo;

/**
 * 系统菜单服务接口类
 */
public interface ISystemAuthMenuService extends IService<SystemAuthMenu> {

    /**
     * 根据角色获取菜单
     *
     * @author fzr
     * @return JSONArray
     */
    JSONArray selectMenuByRoleId(Long roleId);

    /**
     * 菜单列表
     *
     * @author fzr
     * @return JSONArray
     */
    JSONArray list(SystemAuthAdminInformVo systemAuthAdmin);

    /**
     * 菜单详情
     *
     * @author fzr
     * @param id 主键
     * @return SysMenu
     */
    SystemAuthMenuVo detail(Long id);

    /**
     * 菜单新增
     *
     * @author fzr
     * @param createValidate 参数
     */
    void add(SystemMenuCreateValidate createValidate);

    /**
     * 菜单编辑
     *
     * @author fzr
     * @param updateValidate 参数
     */
    void edit(SystemMenuUpdateValidate updateValidate);

    /**
     * 菜单删除
     *
     * @author fzr
     * @param id 主键
     */
    void del(Long id);


     PageResult<SystemAuthMenuVo> listPage(PageValidate pageValidate );
}
